Academy

জাভাস্ক্রিপ্ট স্ট্রিং এবং অ্যারে (JS String & Array)

Web Development - জাভাস্ক্রিপ্ট (JavaScript) - NCTB BOOK
Please, contribute to add content into জাভাস্ক্রিপ্ট স্ট্রিং এবং অ্যারে (JS String & Array).
Content

জাভাস্ক্রিপ্ট স্ট্রিং (JS String)

টেক্সট সংরক্ষন এবং সেগুলো নিয়ে কাজ করার জন্য জাভাস্ক্রিপ্টে স্ট্রিং ব্যবহার করা হয়।


জাভাস্ক্রিপ্ট স্ট্রিং

জাভাস্ক্রিপ্টে স্ট্রিং সাধারণত কিছু ক্যারেক্টারকে জমা রাখে।যেমন "Tamjid Hasan"।

একটি স্ট্রিং হলো উদ্ধৃতি চিহ্নের মাঝে যেকোন ধরনের টেক্সট। আপনি সিঙ্গেল বা ডাবল কোটেশন(উদ্ধৃতি চিহ্ন) ব্যবহার করতে পারেনঃ

kt_satt_skill_example_id=800

আপনি একটি স্ট্রিং ভিতরে উদ্ধৃতি চিহ্ন ব্যবহার করতে পারেন কিন্তু লক্ষ্য রাখতে হবে তার পার্শ্ববর্তী স্ট্রিংয়ের উদ্ধৃতি চিহ্নের সাথে না মিলেঃ

kt_satt_skill_example_id=802


স্ট্রিংয়ের দৈর্ঘ্য(length)

একটি স্ট্রিংয়ের দৈর্ঘ্য স্ট্রিংয়ের বিল্ট-ইন length প্রোপার্টির মাধ্যমে পাওয়া যায়ঃ

kt_satt_skill_example_id=803

স্পেশাল ক্যারেক্টার

যেহেতু স্ট্রিংকে উদ্ধৃতির মধ্যে লেখা আবশ্যক, তাই জাভাস্ক্রিপ্ট নিচের স্ট্রিংকে ভুলভাবে পড়বেঃ

kt_satt_skill_example_id=804

স্ট্রিংটি "Welcome To" পযর্ন্ত নেওয়া হবে।

এই সমস্যা এড়ানোর জন্য আমরা \ চিহ্নটি ব্যবহার করবো।

স্ট্রিংয়ের মধ্যে বিশেষ অক্ষর ব্যবহার করতে চাইলে আপনাকে ব্যাকস্ল্যাশ(\) ব্যবহার করতে হবেঃ

kt_satt_skill_example_id=807

স্ট্রিংয়ের মধ্যে অন্যান্য স্পেশাল ক্যারেক্টার ব্যবহার করতেও \ ব্যবহার করা হয়।

টেক্সট স্ট্রিং-এ ব্যাকস্ল্যাশ(backslash) ব্যবহার করে নিচের স্পেশাল ক্যারেক্টারগুলো তৈরি করা যায়ঃ

কোডফলাফল
\'সিঙ্গেল কোটেশন
\"ডাবল কোটেশন
\\ব্যাকস্ল্যাশ
\nনতুন লাইন
\rনতুন লাইন তৈরি করার মতই
\tট্যাব
\bব্যাকস্পেস
\fফর্ম ফিড

লম্বা লাইনের কোড এড়িয়ে চলা

পড়ার সুবিধার জন্য প্রোগ্রামাররা ৮০ ক্যারেক্টারের বড় লাইনকে এড়িয়ে চলে।

যদি একটি জাভাস্ক্রিপ্ট স্টেটমেন্ট এক লাইনে সম্পন্ন না হয় তবে অপারেটরের পরে পরবর্তী লাইনে চলে যাওয়া সবচেয়ে ভালো পদ্ধতিঃ

kt_satt_skill_example_id=808

এছাড়াও আপনি কোন স্ট্রিংয়ের টেক্সটের মাঝে একটি ব্যাকস্ল্যাশ ব্যবহার করে লাইন ব্রেক করতে পারেনঃ

kt_satt_skill_example_id=809

ব্যাকস্ল্যাশ মেথডটি ইকমাস্ক্রিপ্ট(জাভাস্ক্রিপ্ট) স্ট্যান্ডার্ড নয়।
কিছু ব্রাউজারে ব্যাকস্ল্যাশের(\) পরে স্পেস সাপোর্ট করে না।

স্ট্রিংকে ভাঙ্গার আরো একটি নিরাপদ পদ্ধতি হলো স্ট্রিংয়ের যোগ করাঃ

kt_satt_skill_example_id=810

আপনি ব্যাকস্ল্যাশ ব্যবহার করে কোডের মধ্যে লাইন ব্রেক করতে পারবেন নাঃ

kt_satt_skill_example_id=811

স্ট্রিং অবজেক্ট

সাধারণত জাভাস্ক্রিপ্ট স্ট্রিং হলো প্রিমিটিভ ভ্যালু যা আক্ষরিকভাবে তৈরি করা হয়ঃ var a = "Tamim"

কিন্তু new কিওয়ার্ড দ্বারা স্ট্রিংকে অবজেক্টে হিসেবেও ডিফাইন করা যায়ঃvar b = new String("Tamim")

kt_satt_skill_example_id=812

স্ট্রিংকে অবজেক্ট হিসাবে তৈরি করবেন না। এটি এক্সিকিউশনের গতিকে ধীর করে দেবে।
new কিওয়ার্ড কোডকে জটিল করে। ইহা অপ্রত্যাশিত ফলাফল দেখাতে পারেঃ

যখন আমরা == অপারেটরটি ব্যবহার করবো,দুইটি স্ট্রিং সমান দেখায়ঃ

kt_satt_skill_example_id=813

যখন আমরা === অপারেটরটি ব্যবহার করবো, দুইটি স্ট্রিং সমান হবে না কারন === অপারেটরের ক্ষেত্রে মান এবং টাইপ উভয়ই একই হতে হবে।

kt_satt_skill_example_id=814

অবজেক্টকে তুলনা করা যাবে নাঃ

kt_satt_skill_example_id=815

Content added || updated By

জাভাস্ক্রিপ্ট স্ট্রিং মেথড (String Method)

স্ট্রিং মেথড আপনাকে স্ট্রিং নিয়ে কাজ করতে সাহায্য করবে।


স্ট্রিং মেথড এবং প্রোপার্টি

প্রিমিটিভ(Primitive) ভ্যালুর, যেমন "Tamjid Hasan", কোন প্রোপার্টি বা মেথড থাকতে পারে না(কারন তারা অবজেক্ট নয়)।

 


স্ট্রিং লেন্থ

length প্রোপার্টি স্ট্রিংটি কয়টি ক্যারেক্টার নিয়ে গঠিত তা রিটার্ন করেঃ

kt_satt_skill_example_id=831

স্ট্রিংয়ের মধ্যে স্ট্রিং খোঁজা

indexOf() মেথডটি একটি স্ট্রিংয়ের মধ্যে একটি নির্দিষ্ট টেক্সটের প্রথম অবস্থান রিটার্ন করেঃ

kt_satt_skill_example_id=833

lastIndexOf() মেথডটি একটি স্ট্রিংয়ের মধ্যে একটি নির্দিষ্ট টেক্সটের শেষ অবস্থান রিটার্ন করেঃ

kt_satt_skill_example_id=835

যদি টেক্সটটি না পাওয়া যায় indexOf() এবং lastIndexOf() উভয় মেথডই -1 রিটার্ন করে।

জাভাস্ক্রিপ্টে স্ট্রিংয়ের অবস্থান শূন্য থেকে গণনা করা হয়।
স্ট্রিং-এ ০(শূন্য) হচ্ছে প্রথম অবস্থান, ১ হচ্ছে দ্বিতীয় অবস্থান আর ২ হচ্ছে তৃতীয় অবস্থান এবং এইভাবে চলতে থাকে।


 

উভয় মেথডই দ্বিতীয় একটি প্যারামিটার গ্রহণ করে।


স্ট্রিংয়ের মধ্যে একটি স্ট্রিং অনুসন্ধান

search() মেথডটি একটি স্ট্রিংয়ের মধ্যে একটি নির্দিষ্ট ভ্যালু অনুসন্ধান করে এবং অনুসন্ধানকৃত ভ্যালুর অবস্থান রিটার্ন করেনঃ

kt_satt_skill_example_id=836

আপনি লক্ষ্য করেছিলেন কি?

indexOf() এবং search() উভয় মেথড একই।

তারা উভয়ই একই আর্গুমেন্ট(arguments) বা প্যারামিটার ভ্যালু গ্রহন করে এবং একই মান রিটার্ন করে।

দুটি মেথড একই, কিন্তু search() মেথডটি অনেক বেশি শক্তিশালী।

আপনি অনুসন্ধান সম্পর্কে রেগুলার এক্সপ্রেশন(regular expressions) পরিচ্ছেদে আরো জানবেন।


স্ট্রিংকে বিভক্ত করা

স্ট্রিংয়ের একটি অংশকে বিভক্ত করার জন্য ৩টি মেথড রয়েছেঃ

  • slice(start, end)
  • substring(start, end)
  • substr(start, length)

slice() মেথড

slice() মেথডটি স্ট্রিংয়ের একটি অংশকে ভাগ করে এবং বিভক্ত অংশটিকে নতুন একটি স্ট্রিংয়ে রিটার্ন করে।

মেথডটি দুইটি প্যারামিটার গ্রহন করেঃ শুরুর অবস্থান(start index) এবং শেষের অবস্থান(end index)।

এই উদাহরণে একটি স্ট্রিংয়ের ৭ থেকে ১৩ অবস্থানের অংশটুকু ভাগ করে নেয়ঃ

kt_satt_skill_example_id=838

যদি কোন প্যারামিটারের মান ঋনাত্মক হয় তবে স্ট্রিংয়ের অবস্থান গণনা শেষ থেকে শুরু হবে।

এই উদাহরণে স্ট্রিংয়ের -১২ থেকে -৬ অংশটি ভাগ করা হবে। যেহেতু প্যারামিটারের মান ঋনাত্মক এটি স্ট্রিংয়ের শেষ থেকে গণনা শুরু করবে।

kt_satt_skill_example_id=840

আপনি যদি ২য় প্যারামিটারটি উল্লেখ না করেন তাহলে এটি প্রথম অবস্থান থেকে বাকী সম্পূর্ন অংশ ভাগ করবেঃ

kt_satt_skill_example_id=842

অথবা এটি শেষ থেকে গণনা করবেঃ

kt_satt_skill_example_id=844

ইন্টারনেট এক্সপ্লোরার ৮ এবং এর আগের ব্রাউজারগুলোতে প্যারামিটারের ঋনাত্মক মান কাজ করে না।


substring() মেথড

substring() মেথডটি slice() মেথডের মতই।

পার্থক্য হচ্ছে substring() মেথড ঋনাত্মক ইন্ডেক্স ভ্যালু গ্রহণ করে না।

kt_satt_skill_example_id=845

আপনি যদি ২য় প্যারামিটারটি উল্লেখ না করেন তাহলে substring() মেথড প্রথম অবস্থান থেকে বাকী সম্পূর্ন অংশ ভাগ করবে।


substr() মেথড

substr() মেথডটি slice() মেথডের মতই।

পার্থক্য হচ্ছে দ্বিতীয় প্যারামিটারটিতে কতটি ক্যারেক্টার ভাগ করতে চান তা উল্লেখ করতে হবে।

kt_satt_skill_example_id=847

যদি প্রথম প্যারামিটারের মান ঋনাত্মক হয় তাহলে স্ট্রিংয়ের শেষ প্রান্ত থেকে গণনা শুরু হয়।

২য় প্যারামিটারের মান কথনোই ঋনাত্মক হতে পারবে না কারন এটি দৈর্ঘ্য নির্দেশ করে।

আপনি যদি ২য় প্যারামিটারটি উল্লেখ না করেন তাহলে substr() মেথড বাকী সম্পূর্ন অংশ ভাগ করবে।


স্ট্রিংয়ের কন্টেন্ট প্রতিস্থাপন

replace() মেথডটি স্ট্রিংয়ের নির্দিষ্ট একটি মানকে অন্য একটি ভ্যালু দ্বারা প্রতিস্থাপন করেঃ

kt_satt_skill_example_id=849

replace() মেথড অনুসন্ধান ভ্যালু হিসাবে রেগুলার এক্সপ্রেশনও নিতে পারে।

স্বাভাবিকভাবে replace() মেথডটি অনুসন্ধানকৃত অংশকে প্রথম যেখানে পাবে তাকেই প্রতিস্থাপন করবে। যদি সবগুলোকে প্রতিস্থাপন করতে চান সেক্ষেত্রে রেগুলার এক্সপ্রেশনের g ফ্ল্যাগ(গ্লোবাল সার্চের জন্য) ব্যবহার করতে হবেঃ

kt_satt_skill_example_id=854

replace() মেথডটি স্ট্রিংকে পরিবর্তন করে না।এটা নতুন একটি স্ট্রিং রিটার্ন করে।


বড়হাতের অক্ষর(Upper Case) এবং ছোটহাতের অক্ষরে(Lower Case) রূপান্তর

একটি স্ট্রিংকে toUpperCase() মেথডের মাধ্যমে বড় হাতের অক্ষরে রূপান্তর করা হয়েছেঃ

kt_satt_skill_example_id=856

একটি স্ট্রিংকে toLowerCase() মেথডের মাধ্যমে ছোটহাতের অক্ষরে রূপান্তর করা হয়েছেঃ

kt_satt_skill_example_id=858

concat() মেথড

স্ট্রিং যোগ করার জন্য concat() মেথড ব্যবহার করা হয়ঃ

kt_satt_skill_example_id=859

concat() মেথডটি প্লাস(+) অপারেটরের পরিবর্তে ব্যবহার করা যেতে পারে। দুইটি লাইন একই কাজ করেঃ

kt_satt_skill_example_id=860

সকল স্ট্রিং মেথডই একটি নতুন স্ট্রিং রিটার্ন করে। তারা মূল স্ট্রিংকে পরিবর্তন করে না।
স্ট্রিং অপরিবর্তনীয়ঃ স্ট্রিংগুলো পরিবর্তন করা যাবে না শুধুমাত্র প্রতিস্থাপন করা যায়।


স্ট্রিংয়ের ক্যারেক্টার ভাগ

স্ট্রিং ক্যারেক্টারকে ভাগ করার দুইটি পদ্ধতি রয়েছেঃ

  • charAt(position)
  • charCodeAt(position)

charAt() মেথড

charAt() মেথডটি একটি স্ট্রিংয়ের একটি উল্লেখিত অবস্থানের(index) ক্যারেক্টারকে রিটার্ন করেঃ

kt_satt_skill_example_id=861

charCodeAt() মেথড

charCodeAt() মেথডটি একটি স্ট্রিংয়ের একটি উল্লেখিত অবস্থানের(index) ক্যারেক্টারের ইউনিকোড রিটার্ন করেঃ

kt_satt_skill_example_id=862

স্ট্রিংকে অ্যারের মত করে এক্সেস করা নিরাপদ নয়

আপনি হয়তো স্ট্রিংকে অ্যারের মত করে এক্সেস করা দেখতে পারেনঃ

kt_satt_skill_example_id=863

ইহা বিপজ্জনক এবং অনিশ্চিত ফলাফল দেখাতে পারেঃ

  • এটা সকল ব্রাউজারে কাজ করে না(IE5, IE6, IE7 এ কাজ করে না)
  • এটা স্ট্রিংকে অ্যারের মত করে তোলে(কিন্তু তারা অ্যারে না)
  • str[0] = "H" কোন ভুল দেখায় না(কিন্তু কাজও করে না)

যদি আপনি একটি স্ট্রিংকে অ্যারে আকারে পড়তে চান, প্রথমে একে অ্যারেতে রূপান্তর করুন।


স্ট্রিংকে অ্যারেতে রূপান্তর

split() মেথড ব্যবহার করে একটি স্ট্রিংকে অ্যারেতে রূপান্তরিত করা যেতে পারেঃ

kt_satt_skill_example_id=864

যদি বিভাজক বাদ দেওয়া হয়, তাহলে সম্পূর্ন স্ট্রিংটি অ্যারের ০ ইনডেক্সে রাখা হবে।

বিভাজক যদি "" হয়, তবে অ্যারের মধ্যে প্রতিটি ক্যারেক্টারকে ভিন্ন ইনডেক্সে রাখা হবেঃ

kt_satt_skill_example_id=865

সম্পূর্ণ স্ট্রিং রেফারেন্স

সম্পূর্ণ রেফারেন্স জন্য আমাদের সম্পূর্ণ জাভাস্ক্রিপ্ট স্ট্রিং রেফারেন্সে যান।

রেফারেন্সে সকল স্ট্রিং প্রোপার্টি এবং মেথডের উদাহরণ রয়েছে।

Content added By
Please, contribute to add content into জাভাস্ক্রিপ্ট স্ট্রিং সার্চ (String Search).
Content

জাভাস্ক্রিপ্ট স্ট্রিং টেমপ্লেট (JS Template Literal)

Please, contribute to add content into জাভাস্ক্রিপ্ট স্ট্রিং টেমপ্লেট (JS Template Literal).
Content

জাভাস্ক্রিপ্ট অ্যারে (JS Array)

একটি ভ্যারিয়েবলের মধ্যে অনেক ভ্যালু রাখার জন্য অ্যারে ব্যবহার করা হয়।

kt_satt_skill_example_id=873

অ্যারে কি?

অ্যারে একটি বিশেষ ভ্যারিয়েবল যা একসঙ্গে একাধিক মান ধারণ করতে পারে।

আপনার কাছে যদি একাধিক ভ্যালুর একটি লিস্ট থাকে(উদাহরণস্বরুপঃ স্যাট মেম্বারদের নামের লিস্ট) তাহলে সেগুলোকে আলাদা আলাদা ভ্যারিয়েবলের মধ্যে রাখলে নিচের মত দেখাবেঃ

kt_satt_skill_example_id=874

আপনার কাছে যদি ৩০০ মেম্বারের লিস্ট থাকে এবং লুপের মাধ্যমে একজন মেম্বারকে পেতে চান!

এর সমাধান হচ্ছে অ্যারে।

অ্যারে একই নামের অধীনে অনেক ভ্যালু রাখতে পারে এবং আপনি ইন্ডেক্স নম্বর ব্যবহার করে ভ্যালু এক্সেস করতে পারেন।


অ্যারে তৈরি

অ্যারে লিটারাল ব্যবহার জাভাস্ক্রিপ্ট অ্যারে তৈরি করার সবচেয়ে সহজ উপায়।

সিন্টেক্সঃ

kt_satt_skill_example_id=876

kt_satt_skill_example_id=878

অ্যারে ডিক্লেয়ারেশন একাধিক লাইনেও করা যায়ঃ

kt_satt_skill_example_id=879

শেষের এলিমেন্টের পরে কখনো কমা ব্যবহার করবেন না (যেমনঃ "Hen",) ।


জাভাস্ক্রিপ্ট new কিওয়ার্ড ব্যবহার

নিম্নলিখিত উদাহরণেও একটি অ্যারে তৈরি করা হয়েছেঃ

kt_satt_skill_example_id=881

উপরে দুটি উদাহরণ একই কাজ করে। এখানে new array() ব্যবহার করার প্রয়োজন নেই।
সহজ, পাঠযোগ্যতা এবং এক্সিকিউশন গতির জন্য প্রথম পদ্ধতিটি ব্যবহার করুন।


অ্যারের এলিমেন্ট এক্সেস

আপনি ইন্ডেক্স নম্বর উল্লেখ করার মাধ্যমে একটি অ্যারে এলিমেন্ট নির্দেশ করতে পারেন। নিচের স্টেটমেন্টে satt অ্যারের তৃতীয় এলিমেন্টকে এক্সেস করা হয়েছেঃ

kt_satt_skill_example_id=882

এই স্টেটমেন্টে তৃতীয় এলিমেন্টকে পরিবর্তন করা হয়েছেঃ

kt_satt_skill_example_id=883

kt_satt_skill_example_id=884

একটি অ্যারের প্রথম এলিমেন্ট হচ্ছে [0], দ্বিতীয়টি হচ্ছে [1]। অ্যারের ইনডেক্স ০ দিয়ে শুরু হয়।


সম্পূর্ণ অ্যারে অ্যাক্সেস করা

জাভাস্ক্রিপ্টে সম্পূর্ন অ্যারেকে এক্সেস করার জন্য শুধুমাত্র অ্যারের নাম লিখতে হয়ঃ

kt_satt_skill_example_id=885

অ্যারে হচ্ছে অবজেক্ট

অ্যারে স্পেশাল টাইপের অবজেক্ট। জাভাস্ক্রিপ্টের typeof অপারেটর অ্যারের ক্ষেত্রে object রিটার্ন করে।

কিন্তু, জাভাস্ক্রিপ্ট অ্যারেকে অ্যারে হিসেবে সবচেয়ে ভালো বর্ণনা করা যায়।

অ্যারে সংখ্যা ব্যবহার করে তার এলিমেন্টকে এক্সেস করে। এই উদাহরণে animals[1] দ্বারা অ্যারেকে এক্সেস করলে Tiger রিটার্ন করেঃ

kt_satt_skill_example_id=888

অবজেক্ট তার মেম্বারকে এক্সেস করার জন্য নাম ব্যবহার করে। এই উদাহরনে, member.firstName দ্বারা অবজেক্টকে এক্সেস করলে 'আজিজুর' রিটার্ন করেঃ

kt_satt_skill_example_id=889

অ্যারে এলিমেন্ট অবজেক্ট হতে পারে

জাভাস্ক্রিপ্ট ভ্যারিয়েবল অবজেক্ট হতে পারে। অ্যারে হচ্ছে স্পেশাল টাইপের অবজেক্ট।

এই কারনে, বিভিন্ন ধরনের ভ্যারিয়েবলকে একই অ্যারেতে রাখা যায়।

একটি অ্যারেতে আপনি অবজেক্ট, ফাংশন এবং অন্য একটি অ্যারেও রাখতে পারেনঃ

kt_satt_skill_example_id=890

অ্যারে প্রোপার্টি এবং মেথড

জাভাস্ক্রিপ্ট অ্যারের সবচেয়ে শক্তিশালী দিক হচ্ছে এর বিল্ট-ইন প্রোপার্টি এবং মেথডঃ

kt_satt_skill_example_id=891

অ্যারে মেথড সম্পর্কে পরবর্তী পরিচ্ছেদে আরো ভালোভাবে আলোচনা করা হয়েছে।


length প্রোপার্টি

length প্রোপার্টি একটি অ্যারের এলিমেন্টের সংখ্যা রিটার্ন করে।

kt_satt_skill_example_id=892

অ্যারে এলিমেন্ট যোগ করা

অ্যারেতে নতুন এলিমেন্ট যোগ করার সবচেয়ে সহজ পদ্ধতি হচ্ছে push মেথড ব্যবহার করাঃ

kt_satt_skill_example_id=895

length প্রোপার্টিও ব্যবহার করে অ্যারে তে নতুন প্রোপার্টি যোগ করা যায়ঃ

kt_satt_skill_example_id=896

kt_satt_skill_example_id=898

অ্যারে এলিমেন্টে লুপিং করা

অ্যারে এলিমেন্টের মধ্যে লুপ করার জন্য একটি সবচেয়ে ভালো পদ্ধতি হচ্ছে "for" লুপ ব্যবহার করাঃ

kt_satt_skill_example_id=899

অ্যাসোসিয়েটিভ অ্যারে

অ্যারের ইনডেক্সিং নাম দিয়ে অনেক প্রোগ্রামিং ল্যাংগুয়েজে সাপোর্ট করে।

যেসকল অ্যারের ইনডেক্স নাম দিয়ে করা হয় তাদেরকে অ্যাসোসিয়েটিভ অ্যারে বলে।

জাভাস্ক্রিপ্টে এটা সাপোর্ট করে না।

জাভাস্ক্রিপ্টে, অ্যারে সবসময় নম্বর ইনডেক্স ব্যবহার করে।

kt_satt_skill_example_id=900

সতর্কবাণী!!!
আপনি যদি ইনডেক্সিং-এ নাম ব্যবহার করেন জাভাস্ক্রিপ্ট অ্যারেকে স্ট্যান্ডার্ড অবজেক্ট হিসেবে পুনরায় ডিফাইন করে। তখন সকল অ্যারে মেথড এবং প্রোপার্টি ভুল ফলাফল দেখায়।

kt_satt_skill_example_id=901

অ্যারে এবং অবজেক্টের মধ্যে পার্থক্য

জাভাস্ক্রিপ্টে, অ্যারে নম্বর ইনডেক্স ব্যবহার করে।

জাভাস্ক্রিপ্টে, অবজেক্ট নাম ইনডেক্স ব্যবহার করে।

অ্যারে হচ্ছে একটি স্পেশাল অবজেক্ট যা নম্বর ইনডেক্স ব্যবহার করে।


কখন অ্যারে আর কখন অবজেক্ট ব্যবহার করবেন।

  • জাভাস্ক্রিপ্ট অ্যাসোসিয়েটিভ অ্যারে সাপোর্ট করে না।
  • যখন আপনি এলিমেন্টের নাম স্ট্রিং(টেক্সট) আকারে চাইবেন তখন অবজেক্ট ব্যবহার করবেন।
  • যখন আপনি এলিমেন্টের নাম নম্বর হিসেবে চাইবেন তখন আপনি অ্যারে ব্যবহার করবেন।

new Array() পরিহার করা

এখানে জাভাস্ক্রিপ্টের বিল্ট-ইন অ্যারে কনস্ট্রাক্টর new Array() প্রয়োজন নেই।

এর পরিবর্তে [] ব্যবহার করুন।

এই দুইটি ভিন্ন স্টেটমেন্টই points নামের নতুন অ্যারে তৈরি করেছেঃ

kt_satt_skill_example_id=902

এই দুইটি ভিন্ন স্টেটমেন্টই ৬ সংখ্যার একটি নতুন অ্যারে তৈরি করেঃ

kt_satt_skill_example_id=903

new কিওয়ার্ড কোডকে জটিল করে তুলে। এটি অপ্রত্যাশিত ফলাফল দেখাতে পারেঃ

kt_satt_skill_example_id=904

যদি একটি এলিমেন্ট বাদ দেই?

kt_satt_skill_example_id=906

একটি অ্যারেকে কিভাবে চিনা যায়

একটি সাধারণ প্রশ্ন হলোঃ একটি ভ্যারিয়েবল অ্যারে কিনা কিভাবে বুঝবো?

সমস্যা হচ্ছে জাভাস্ক্রিপ্টের typeof অপারেটর "object" রিটার্ন করেঃ

kt_satt_skill_example_id=907

typeof অপারেটর অবজেক্ট রিটার্ন করে কারন জাভাস্ক্রিপ্ট অ্যারে একটি অবজেক্ট।

সমাধান ১

এই সমস্যা দূর করার জন্য ECMAScript 5 একটি নতুন মেথড Array.isArray() নির্ধারন করেঃ

kt_satt_skill_example_id=909

এই সমাধানের একটি সমস্যা রয়েছে, পুরাতন ব্রাউজারে ECMAScript 5 সাপোর্ট করে না।

সমাধান ২

এই সমস্যা দূর করার জন্য আপনি একটি isArray() ফাংশন তৈরি করে নিতে পারেনঃ

kt_satt_skill_example_id=911

যদি আর্গুমেন্ট একটি অ্যারে হয় তাহলে উপরের ফাংশনটি সব সময় true রিটার্ন করবে।

সমাধান ৩

যদি একটি অবজেক্ট কনস্ট্রাক্টরের মাধ্যমে তৈরি হয় তাহলে instanceof অপারেটর true রিটার্ন করেঃ

kt_satt_skill_example_id=912

Content added By

জাভাস্ক্রিপ্ট অ্যারে মেথড (JS Array Method)

জাভাস্ক্রিপ্ট অ্যারের মূল শক্তি হলো অ্যারে মেথড।


অ্যারেকে স্ট্রিং-এ রূপান্তর

জাভাস্ক্রিপ্ট toString () মেথডটি অ্যারে থেকে স্ট্রিং-এ রূপান্তর করে।

kt_satt_skill_example_id=924

join() মেথড সকল অ্যারে এলিমেন্টকে একটি স্ট্রিং-এ যুক্ত করে।

এটা toString() এর মত কাজ করেঃ

kt_satt_skill_example_id=926

pop() এবং push()

অ্যারে নিয়ে কাজ করার সময় খুব সহজেই এলিমেন্ট বাদ দিতে এবং নতুন এলিমেন্ট যোগ করতে পারবেন।

pop() মেথড দিয়ে অ্যারে থেকে এলিমেন্ট বাদ দেয়া হয় এবং push() মেথড দিয়ে অ্যারেতে এলিমেন্ট যোগ করা হয়।


pop() মেথড

pop() মেথড দিয়ে অ্যারের শেষ এলিমেন্ট বাদ দেয়া হয়ঃ

kt_satt_skill_example_id=927

pop() মেথড বাদ দেওয়া ভ্যালুকে রিটার্ন করেঃ

kt_satt_skill_example_id=929

Push()

push() মেথড দ্বারা একটি অ্যারের শেষে নতুন এলিমেন্ট যুক্ত করা হয়ঃ

kt_satt_skill_example_id=931

push() মেথড অ্যারে এর নতুন দৈর্ঘ্য রিটার্ন করেঃ

kt_satt_skill_example_id=933

shift() মেথড এবং unshift() মেথড

shift() মেথড এবং pop() মেথড একই রকম কাজ করে, শুধুমাত্র শেষের এলিমেন্টের পরিবর্তে প্রথম এলিমেন্টকে বাদ দেয়ঃ

shift() মেথড অ্যারের প্রথম এলিমেন্ট বাদ দেয় এবং সকল এলিমেন্টের ইনডেক্স কমিয়ে দেয়ঃ

kt_satt_skill_example_id=935

unshift() মেথড অ্যারের শুরুতে একটি নতুন এলিমেন্ট যুক্ত করেঃ

kt_satt_skill_example_id=936

unshift() মেথড অ্যারের নতুন দৈর্ঘ্য রিটার্ন করে।


এলিমেন্ট পরিবর্তন

অ্যারে এলিমেন্ট ইনডেক্স নম্বর ব্যবহার করে এক্সেস করা হয়ঃ

অ্যারে ইনডেক্স ০ দিয়ে শুরু হয়, [০] হচ্ছে অ্যারের প্রথম এলিমেন্ট, [১] হচ্ছে দ্বিতীয়, [২] হচ্ছে তৃতীয়...

kt_satt_skill_example_id=937

অ্যারেতে নতুন এলিমেন্ট যোগ করার আরেকটি সহজ পদ্ধতি হচ্ছে length প্রোপার্টি ব্যবহার করাঃ

kt_satt_skill_example_id=938

এলিমেন্ট ডিলেট করা

যেহেতু জাভাস্ক্রিপ্ট অ্যারে একটি অবজেক্ট, তাই জাভাস্ক্রিপ্ট delete অপারেটর ব্যবহার করে অ্যারের এলিমেন্ট ডিলেট করা যায়ঃ

kt_satt_skill_example_id=940

splice() মেথড

splice() মেথড একটি অ্যারেতে নতুন এলিমেন্ট যোগ করার জন্য ব্যবহার করা হয়ঃ

kt_satt_skill_example_id=941

প্রথম প্যারামিটারে এলিমেন্টের ইনডেক্স নম্বর নির্ধারন করা হয় যেখানে এলিমেন্টকে রাখা হবে।

দ্বিতীয় প্যারামিটারে কতটি এলিমেন্ট বাদ দেওয়া হবে তা নির্দেশ করা হয়।


splice() ব্যবহার করে এলিমেন্ট বাদ দেওয়া

বুদ্ধিমত্তার সাথে প্যারামিটার সেটিং-এর মাধ্যমে আপনি splice() মেথড ব্যবহার করে অ্যারের "undefined" এঁরর ছাড়াই এলিমেন্ট বাদ দিতে পারবেনঃ

kt_satt_skill_example_id=943

প্রথম প্যারামিটারে এলিমেন্টের ইনডেক্স নম্বর নির্ধারন করা হয় যেখানে এলিমেন্টকে রাখা হবে।

দ্বিতীয় প্যারামিটারে কতটি এলিমেন্ট বাদ দেওয়া হবে তা নির্দেশ করা হয়।

বাকি প্যারামিটার বাদ দেওয়া হয়েছে। তার মানে নতুন কোন এলিমেন্ট যোগ করা হবে না।


অ্যারে যুক্ত করা

concat() মেথড দুইটি অ্যারেকে যুক্ত করে একটি নতুন অ্যারে তৈরি করেঃ

kt_satt_skill_example_id=945

concat() মেথড আর্গুমেন্ট হিসেবে একাধিক অ্যারেও নিতে পারেঃ

kt_satt_skill_example_id=946

অ্যারে আলাদা(slice) করা

slice() মেথড একটি অ্যারের অংশকে আলাদা করে নতুন একটি অ্যারে তৈরি করে।

এই উদাহরণে একটি অ্যারের প্রথম এলিমেন্ট("Lion") থেকে আলাদা করে।

kt_satt_skill_example_id=947

slice() মেথড একটি নতুন অ্যারে তৈরী করে। এটি সোর্স অ্যারে থেকে কোনো এলিমেন্ট বাদ দেয় না।

slice() মেথড দুইটি আর্গুমেন্টও নিতে পারেঃ

kt_satt_skill_example_id=949

যদি শেষ আর্গুমেন্ট না দেওয়া হয় তাহলে slice() মেথড অ্যারের বাকি এলিমেন্টকে আলাদা করে নেয়।

kt_satt_skill_example_id=952

valueOf() মেথড

valueOf() মেথড অ্যারের একটি ডিফল্ট মেথড। এটি একটি অ্যারেকে প্রিমিটিভ ভ্যালুতে রুপান্তর করে।

যখন একটি প্রিমিটিভ ভ্যালুর দরকার হয় জাভাস্ক্রিপ্ট স্বয়ংক্রিয়ভাবে একটি অ্যারেকে একটি স্ট্রিং-এ রূপান্তর করে।

এই কারণে, নিচের সকল উদাহরণ একই ফলাফল দেখায়ঃ

kt_satt_skill_example_id=953

সকল জাভাস্ক্রিপ্ট অবজেক্টের একটি valueOf() এবং একটি toString() মেথড আছে।


অ্যারে শ্রেণীবদ্ধকরণ

অ্যারে শ্রেণীবদ্ধকরণ পরবর্তী পরিচ্ছেদে আলোচনা করা হয়েছে।


সম্পুর্ন অ্যারে রেফারেন্স

সম্পূর্ণ অ্যারে রেফারেন্সের জন্য আমাদের সম্পুর্ণ জাভাস্ক্রিপ্ট অ্যারে রেফারেন্স পড়ুন।

Content added By

জাভাস্ক্রিপ্ট অ্যারে সর্ট (JS ArraySort)

sort() মেথড একটি শক্তিশালী অ্যারে মেথড।


একটি অ্যারেকে শ্রেণীবদ্ধ করা

sort() মেথড অ্যারেকে বর্ণানুক্রমে সাজায়ঃ

kt_satt_skill_example_id=986

অ্যারেকে উল্টোভাবে সাজানো

reverse() মেথডটি একটি অ্যারের এলিমেন্টকে উল্টোভাবে(reverse) সাজায়ঃ

একটি অ্যারেকে অধোগামীক্রমে(Descending order) সাজানোর জন্য এটা ব্যবহার করতে পারেনঃ

kt_satt_skill_example_id=959

সংখ্যাকে সাজানো

ডিফল্টভাবে sort() ফাংশনটি ভ্যালুকে স্ট্রিং আকারে সাজায়।

যদি সংখ্যাকে স্ট্রিং হিসেবে সাজানো হয়,তাহলে "30" এর তুলনায় "112" ছোট, কারন "3" এর চেয়ে "1" ছোট।

এই কারনে, sort() মেথডে সংখ্যা ব্যবহার করলে ভুল ফলাফল দেখাবে।

আপনি একটি ফাংশন ব্যবহার করে এটি ঠিক করতে পারেনঃ

kt_satt_skill_example_id=960

অ্যারেকে উল্টোভাবে সাজাতে এটি ব্যবহার করুনঃ

kt_satt_skill_example_id=961

শ্রেণীবদ্ধকরণ ফাংশন

এই ফাংশনের কাজ হচ্ছে সাজানোর একটি বিকল্প পদ্ধতি ডিফাইন করা।

আর্গুমেন্টের উপর নির্ভর করে এই ফাংশন ঋনাত্মক, শূণ্য অথবা ধনাত্মক ভ্যালু রিটার্ন করেঃ

kt_satt_skill_example_id=963

 যখন sort() ফাংশনটি দুইটি ভ্যালুর তুলনা করে, তখন এটি তার অভ্যন্তরীণ ফাংশনে ভ্যালু দুইটি পাঠায় এবং sort() ফাংশন রিটার্ন ভ্যালু অনুসারে(ঋনাত্মক,শূণ্য, ধনাত্মক) ভ্যালুকে সাজায়।

উদাহরণ

যখন 30 এবং 112 এর মধ্যে তুলনা করা হয়, তখন sort() মেথডটি ফাংশনকে কল করে।

ফাংশনটি 30-112 কে হিসাব করে এবং -82 রিটার্ন করে(নেগেটিভ ভ্যালু)।

sort ফাংশনটি 30 কে 112 এর চেয়ে ছোট ভ্যালু হিসেবে সাজায়।

আপনি সংখ্যায় এবং বর্ণানুক্রমিকভাবে সাজাতে এই কোডগুলো ব্যবহার করতে পারেনঃ

kt_satt_skill_example_id=965

অ্যারেকে এলোমেলোভাবে সাজানো

kt_satt_skill_example_id=966

সর্বোচ্চ (অথবা সর্বনিম্ন) ভ্যালু খোঁজা

kt_satt_skill_example_id=968

কিভাবে অ্যারেতে সর্বোচ্চ ভ্যালু খুঁজবেন?

kt_satt_skill_example_id=970

অবজেক্টের অ্যারে সাজানো

জাভাস্ক্রিপ্ট অ্যারেতে অবজেক্টও থাকতে পারেঃ

kt_satt_skill_example_id=972

যদি অবজেক্টে বিভিন্ন ধরনের ডাটা টাইপের প্রোপার্টি থাকে, sort() মেথড দিয়ে অ্যারেকে সাজাতে ব্যবহার করা যায়।

শুধু প্রোপার্টি ভ্যালুকে তুলনা করতে একটি ফাংশন লিখতে হয়ঃ

kt_satt_skill_example_id=974

স্ট্রিং প্রোপার্টির তুলনা একটু বেশি জটিলঃ

kt_satt_skill_example_id=975

Content added || updated By

জাভাস্ক্রিপ্ট অ্যারে ইটারেশন (JS Array Iteration)

Please, contribute to add content into জাভাস্ক্রিপ্ট অ্যারে ইটারেশন (JS Array Iteration).
Content

জাভাস্ক্রিপ্ট অ্যারে কন্স্‌ট (JSArray Const)

Please, contribute to add content into জাভাস্ক্রিপ্ট অ্যারে কন্স্‌ট (JSArray Const).
Content
Promotion